﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Entangle
{
    class User
    {
        private string message = String.Empty;
        PartnerStates state = PartnerStates.Unknown;

        public string Message
        {
            get { return message; }
            set
            {
                if (message != value)
                {
                    message = value;
                    try
                    {
                        Entangled.Instance.Notify(new PartnerState(state, TimeSpan.Zero, message));
                    }
                    catch (RequestException e)
                    {
                        switch (e.ErrorCode)
                        {
                            case RequestException.INVALID_SYNCH_STATUS:
                                new Entangle.Resources.Windows.InfoWindow("Status nie zostanie przekazany dopóki synchronizacja nie zostanie ukończona.", 5).Show();
                                break;
                            default:
                                throw;
                        }
                    }
                }
            }
        }
        public PartnerStates State
        {
            get { return state; }
            set
            {
                if (state != value)
                {
                    state = value;
                    try
                    {
                        Entangled.Instance.Notify(new PartnerState(state, TimeSpan.Zero, message));
                    }
                    catch (RequestException e)
                    {
                        switch (e.ErrorCode)
                        {
                            case RequestException.INVALID_SYNCH_STATUS:
                                new Entangle.Resources.Windows.InfoWindow("Status nie zostanie przekazany dopóki synchronizacja nie zostanie ukończona.", 5).Show();
                                break;
                            default:
                                throw;
                        }
                    }
                }
            }
        }
    }
}
